/**
 * resolve参数
 *   1. 普通的值或对象
 *   2.传入的是一个Promise
 *     那么当前的状态会由传入的Promise来决定，相当于状态进行了移交
 *   3.传入的是一个对象，如果这个对象有实现then方法(thenable)，那么也会执行then方法，并且由该then方法决定后续状态
 */
const newPromise = new Promise((resolve, reject) => {
  resolve(123)
}).then((res) => {
  res += 2
  return res
})

new Promise((resolve, reject) => {
  //1.传入Promise
  //resolve(newPromise)
  //2.传入包含thenable对象
  const obj = {
    //带resolve/reject才能进行跳转
    then: function (resolve, reject) {
      console.log('this is a thenable obj')
      resolve('resolve message')
      //reject('reject message')
    },
  }
  resolve(obj)
})
  .then((res) => {
    console.log('res: ' + res)
  })
  .catch((err) => {
    console.log('err: ' + err)
  })
